package me.firstapp.spi.bbs;

import java.util.Map;

import me.firstapp.common.json.ListObject;
import me.firstapp.common.json.PageObject;
import me.firstapp.common.json.SingleObject;
import me.firstapp.common.module.bbs.JsonSection;

public interface SectionService {

	/**
	 * 调用 获取所有板块接口
	 * 
	 * @return
	 */
	ListObject<JsonSection> findSectionList();

	/**
	 * 调用分页查询板块接口
	 * 
	 * @param pageNo
	 * @param pageSize
	 * @param searchParams
	 * @param sortParam
	 * @param sortType
	 * @return
	 */
	PageObject<JsonSection> findSectionPage(Integer pageNo, Integer pageSize, Map<String, Object> searchParams,
			String sortParam, String sortType);

	/**
	 * 调用新增板块接口
	 * 
	 * @param name
	 * @param description
	 * @param sort
	 * @return
	 */
	SingleObject<JsonSection> addSection(String name, String description, Integer sort);

	/**
	 * 删除
	 * 
	 * @param ids
	 *            多个id时用","隔开
	 */
	SingleObject<Object> deleteSections(String ids);

	/**
	 * 调用更新板块接口
	 * 
	 * @param id
	 * @param name
	 * @param description
	 * @param sort
	 * @return
	 */
	SingleObject<JsonSection> updateSection(Long id, String name, String description, Integer sort);

	/**
	 * 调用通过id查询板块接口
	 * 
	 * @param id
	 * @return
	 */
	SingleObject<JsonSection> findById(Long id);

	/**
	 * 调用更新板块话题和回复数量接口
	 * 
	 * @param apiClientId
	 * @return
	 */
	SingleObject<Object> updateTopicAndReplyCounts(Long apiClientId);

	/**
	 * 调用更新板块缓存接口
	 * 
	 * @return
	 */
	SingleObject<Object> updateSectionCache();
}
